#!/bin/bash
# 一键启动：Neo4j + FastAPI (后台) + Vue3 (后台)
set -e

ROOT="/data/Matrix/yy/gjj_pre_merge-v31"
RAG_ROOT="${ROOT}/KG_RAG_Project"
NEO4J_BIN="${RAG_ROOT}/neo4j_db/bin/neo4j"

CONDA_ENV_NAME="visualglm"

# 💡 关键修复：固定 Conda 根目录，避免错误的自动检测
CONDA_BASE_PATH="/data/Matrix/common/miniconda3"

echo "----------------------------------------------------"
echo "--- [1/3] 正在启动 Neo4j 数据库服务 (S1/S3) ---"
if [ ! -x "$NEO4J_BIN" ]; then
  echo "❌ 未找到 Neo4j 可执行文件: $NEO4J_BIN"
  exit 1
fi
"$NEO4J_BIN" start || true
sleep 5
if "$NEO4J_BIN" status &>/dev/null; then
  echo "✅ Neo4j 服务已启动。"
else
  echo "❌ 启动 Neo4j 失败。请检查日志。"
fi

echo "--- [2/3] 正在启动 FastAPI 后端 (XrayGLM + RAG) (S4) ---"
echo "激活 Conda 环境: $CONDA_ENV_NAME (来自 $CONDA_BASE_PATH)"
if [ -f "$CONDA_BASE_PATH/bin/activate" ]; then
  source "$CONDA_BASE_PATH/bin/activate" "$CONDA_ENV_NAME" || {
    echo "❌ 激活 Conda 环境失败，请检查 CONDA_BASE_PATH/CONDA_ENV_NAME"; exit 1; }
else
  echo "❌ 未找到 Conda 激活脚本: $CONDA_BASE_PATH/bin/activate"; exit 1
fi

cd "${ROOT}/backend"
echo "启动 FastAPI (uvicorn)... 日志输出到 backend.log"
nohup uvicorn main:app --host 0.0.0.0 --port 8001 > backend.log 2>&1 &
BACKEND_PID=$!
echo "✅ FastAPI 后端已在后台启动 (PID: $BACKEND_PID)。"

echo "--- [3/3] 正在启动 Vue3 前端服务 ---"
cd "${ROOT}/frontend"
echo "启动 Vue3 (npm run dev)... 日志输出到 frontend.log"
nohup npm run dev > frontend.log 2>&1 &
FRONTEND_PID=$!
echo "✅ Vue3 前端已在后台启动 (PID: $FRONTEND_PID)。"

echo "----------------------------------------------------"
echo "🎉 所有服务已启动！"
echo " 后端 API: http://10.143.12.80:8001"
echo " 前端应用: http://10.143.12.80:5173"
echo " Neo4j 浏览器: http://10.143.12.80:7474"
echo "----------------------------------------------------"
echo "如需停止服务, 请使用 'kill PID'。"


